home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Utilities / Converters / Convert_FONT / Source / shared.subproj / RCS / ResultObject.rtf,v < prev    next >
Text File  |  1995-06-12  |  41KB  |  1,500 lines

  1. head     1.4;
  2. branch   ;
  3. access   ;
  4. symbols  beta10:1.3;
  5. locks    death:1.4;
  6. comment  @@;
  7.  
  8.  
  9. 1.4
  10. date     93.04.04.23.45.14;  author death;  state Exp;
  11. branches ;
  12. next     1.3;
  13.  
  14. 1.3
  15. date     93.01.10.15.08.46;  author death;  state Exp;
  16. branches ;
  17. next     1.2;
  18.  
  19. 1.2
  20. date     92.07.26.13.59.21;  author death;  state Exp;
  21. branches ;
  22. next     1.1;
  23.  
  24. 1.1
  25. date     92.04.27.20.51.47;  author death;  state Exp;
  26. branches ;
  27. next     ;
  28.  
  29.  
  30. desc
  31. @A base class to use instead of Object, providing error results storage and
  32. multiple values for returning.
  33. @
  34.  
  35.  
  36. 1.4
  37. log
  38. @Sun Apr  4 23:45:14 PDT 1993
  39. @
  40. text
  41. @{\rtf0\ansi{\fonttbl\f4\fnil Palatino-Roman;\f5\ftech Symbol;\f3\fnil NewCenturySchlbk-Roman;}
  42. \paperw15300
  43. \paperh12580
  44. \margl120
  45. \margr0
  46. {\colortbl\red0\green0\blue0;}
  47. \pard\tx5700\tx11360\f4\b0\i0\ul0\fs24 $Revision: 1.3 $    $Author: death $    $Date: 93/01/10 15:08:46 $\
  48.  
  49. \pard \
  50.  
  51. \pard\tx3120\tx3620\tx4120\fs16\li2620 \
  52.  
  53. \fs28 \
  54.  
  55. \fs16 \
  56.  
  57. \fs28 \
  58.  
  59. \fs16 \
  60.  
  61. \pard\b\li1100 \
  62. \
  63. \
  64. \
  65.  
  66. \fs36 ResultObject\
  67.  
  68. \fs16 \
  69.  
  70. \pard\tx7140\b0\fs28\li2100 INHERITS FROM    Object\
  71.  
  72. \fs16 \
  73.  
  74. \fs28 DECLARED IN    ResultObject.h\
  75.  
  76. \fs16 \
  77. \
  78. \
  79.  
  80. \fs28 CLASS DESCRIPTION\
  81.  
  82. \fs16 \
  83.  
  84. \pard\tx3120\tx3620\tx4120\fs28\li2620 ResultObject derives, logically, from the now obsolete classes ErrorInfo and Reply.  The goal of those two classes was to provide a standard, and hopefully frequently used, way to get the results of a method call back to the caller.  In the case of ErrorInfo, this meant to get error codes and descriptive error strings returned.  Reply was a sublcass of ErrorInfo, and thus provided the previously mentioned error code returns, plus ways to get data returned as well.  The idea behind them was that objects would return, say, a Reply object with complete error information as well as any data the caller had requested.  This made it easier for an object to provde needed data as well as error information without relying on things like external global variables for error codes, or what have you.  Put another way, one could now 
  85. \i always
  86. \i0  provide error codes when returning data without any additional work, thus potentially providing more information to the caller.  Being objects, there was also room to subclass them and provide even more specialized and detailed error codes, or to return multiple pieces of non error-related data at once.  These class proved, however, to be more cumbersome than they were worth.  In all too many of the cases where one was returned, the programmer didn't want to deal with checking the error code.  This resulted in cumbersome effortrts to dispose of the result object as soon as it was returned.  Thus, in a majority of the cases, an object was created, initalized, filled, returned, and then deallocated, without even referencing any of the information in the returned object.  The result was undoubtedly slower code that was considerably harder to read.\
  87.  
  88. \fs16 \
  89.  
  90. \fs28 The ResultObject class seeks to provide the same services that Reply did, without its cumbersome aspects.  Rather than having new classes return a Reply or ErrorInfo object, the class tree is set up so that new classes decend from ResultObject rather than Object.  ResultObject provides the internal storage to remember error information for the last method called, as well as storage of data.  Classes decended from ResultObject can behave normally, and return self or a single data result. Additionally, methods can store error information, and additional data in the object, and allow the caller to retrieve it at its conveniance.\
  91.  
  92. \fs16 \
  93.  
  94. \fs28 ResultObject allows one to store an error code and a textual error string, as well as several pieces of data (up to five, presently) that might be requested by a caller.  It recognizes only 7 data types presently: Character, Cstring, 
  95. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Integer
  96. \pard\tx3120\tx3620\tx4120\li2620 , PositiveInteger, Object, Pointer and Boolean.  Support for ByteString, float types, and others may (or may not) be forthcomming.  It also provides one standard error code: ERR_OK, which corresponds to the number 0, and should always be used when no notable errors or problems occured.\
  97.  
  98. \fs16 \
  99.  
  100. \fs28 ResultObject has a large set of straightforward methods to set and retrieve result data, as well as error information. See descriptions below for specific details.\
  101.  
  102. \fs16 \
  103.  
  104. \fs28 The methods can be divided into two groups: those that store data, and those that retrieve it.  The methods that store data should be called only by the class decended from ResultObject.  These methods allow one to store an error code and an error string, as well as store items of particular data types (e.g. a method to store an Integer).  There are two sub-sets of methods for storing the data.  One set, the 
  105. \b Store…
  106. \b0  methods, implicitly store their data in the first storage area.  The 
  107. \b Put…:Into:
  108. \b0  methods store their data into any of the storage areas. Additionally, there is one method that clears all waiting stored data.\
  109.  
  110. \fs16 \
  111.  
  112. \fs28 The methods to retrieving data are much the same as the storage ones.  There is a method to retrieve an error code, and one to retrieve the error string.  There are a set of Get… methods that always retrieve the data item in the first slot, and a set og Get…From: methods to retrieve from arbitrary return positions.\
  113.  
  114. \fs16 \
  115.  
  116. \fs28 One can check if an error occurred when storing or retrieving a data value by using the 
  117. \b Store
  118. \b0  and 
  119. \b Get
  120. \b0  
  121. \b MyError
  122. \b0  methods.\
  123.  
  124. \fs16 \
  125.  
  126. \fs28 Note that when passed an Integer, Character, PositiveInteger, or Boolean, the object will always make a copy of the data internally, and copies will always be returned.  Objects are always stored and returned as pointers; their data is not copied.  For Cstrings, error strings, and Pointers, the default 
  127. \b Store…
  128. \b0  methods will store only references, but there are 
  129. \b Copy…
  130. \b0  methods provided which will copy the referenced data (Note: if the pointer points to a block that in turn points to other blocks of memory, those secondary blocks will not be copied).  When retrieved, Pointers are always returned merely as poiners, not as copies of the data the poiners point to, while CStrings and error strings are always copied before being returned.  \
  131.  
  132. \fs16 \
  133.  
  134. \fs28 If an illegal storage area reference is given with a Put method, the data will be ignored, and no errors will be generated.  If one tries to retrieve a data type that isn't in a storage area, or to request data from a storage area that doesn't exist, you'll get a null value returned; the error codes will be modified to reflect this.\
  135.  
  136. \fs16 \
  137.  
  138. \pard\tx7140\li2100 \
  139. \
  140.  
  141. \fs28 INSTANCE VARIABLES\
  142.  
  143. \fs16 \
  144.  
  145. \pard\tx6640\tx9660\tx10180\i\fs28\fi-4040\li6640 Inherited from Object
  146. \i0     Class    isa;\
  147.  
  148. \fs16 \
  149.  
  150. \i\fs28 Declared in ResultObject
  151. \i0     array of StorageArea    ResultVals;\
  152.  
  153. \pard\tx7140\tx10180\tx10680\fs16\fi-4540\li7140 \
  154.  
  155. \fs28 ResultVals     Used to store all data values to be returned, as well as the internal error code, and the error code and text the subclassing object is returning.
  156. \fs16 \
  157.  
  158. \pard\tx7140\li2100 \
  159. \
  160. \
  161.  
  162. \fs28 METHOD TYPES\
  163.  
  164. \fs16 \
  165.  
  166. \pard\tx7140\tx10180\tx10680\fs28\fi-4540\li7140 Creating/Initializing, and Freeing    
  167. \f5 - 
  168. \f4 init\
  169.  
  170. \pard\tx10180\tx10680\f5\fi-520\li7660 - 
  171. \f4 free\
  172.  
  173. \pard\tx7140\tx10180\tx10680\fs16\fi-4540\li7140 \
  174.  
  175. \fs28 Resetting values    
  176. \f5 - 
  177. \f4 ResetResults\
  178. Setting Error values    
  179. \f5 - 
  180. \f4 StoreErrorCode:AndText: \
  181.  
  182. \pard\tx10180\tx10680\f5\fi-520\li7660 - 
  183. \f4 StoreErrorCode:AndCopyOfText:\
  184.  
  185. \f5 - 
  186. \f4\fc0 StoreMyError:
  187. \
  188.  
  189. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Retrieving Error values    
  190. \f5 - 
  191. \f4 GetErrorCode\
  192.  
  193. \pard\tx10180\tx10680\f5\fi-520\li7660 - 
  194. \f4 GetErrorText\
  195.  
  196. \f5 - 
  197. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f4\fc0 GetMyError
  198. \pard\tx10180\tx10680\fi-520\li7660 \
  199.  
  200. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Setting  values    
  201. \f5 - 
  202. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Put
  203. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Integer:Into:\
  204.     
  205. \f5 - 
  206. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Put
  207. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 PositiveInteger:Into:\
  208.  
  209. \f5     - 
  210. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Put
  211. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Character:Into:\
  212.     
  213. \f5 - 
  214. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Put
  215. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Cstring:Into:\
  216.     
  217. \f5 - 
  218. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Put
  219. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Object:Into:\
  220.  
  221. \f5     - 
  222. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Put
  223. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Pointer:Into:\
  224.     
  225. \f5 - 
  226. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Put
  227. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Boolean:Into:\
  228.     
  229. \f5 - 
  230. \f4 CopyCString:Into:\
  231.     
  232. \f5 - 
  233. \f4 CopyPointer:WithLength:Into:\
  234.     
  235. \f5 - 
  236. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Store
  237. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Integer:\
  238.     
  239. \f5 - 
  240. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Store
  241. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 PositiveInteger:\
  242.  
  243. \f5     - 
  244. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Store
  245. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Character:\
  246.     
  247. \f5 - 
  248. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Store
  249. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Cstring:\
  250.     
  251. \f5 - 
  252. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Store
  253. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Object:\
  254.  
  255. \f5     - 
  256. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Store
  257. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Pointer:\
  258.     
  259. \f5 - 
  260. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Store
  261. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Boolean:\
  262.     
  263. \f5 - 
  264. \f4 CopyCString:\
  265.     
  266. \f5 - 
  267. \f4 CopyCString:Into:\
  268.  
  269. \f5     - 
  270. \f4 CopyPointer:WithLength:\
  271.  
  272. \f5     - 
  273. \f4 CopyPointer:WithLength:Into:\
  274.  
  275. \fc0     
  276. \f5 - 
  277. \f4 PutData:WithType:theTypeInto:DoIOwn:\
  278.  
  279. Retrieving  values    
  280. \f5 - 
  281. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  282. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Integer
  283. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 From
  284. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 :\
  285.     
  286. \f5 - 
  287. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  288. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 PositiveInteger
  289. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 From
  290. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 :\
  291.  
  292. \f5     - 
  293. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  294. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Character
  295. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 From
  296. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 :\
  297.     
  298. \f5 - 
  299. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  300. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Cstring
  301. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 From
  302. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 :\
  303.     
  304. \f5 - 
  305. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  306. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Object
  307. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 From
  308. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 :\
  309.  
  310. \f5     - 
  311. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  312. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Pointer
  313. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 From
  314. \pard\tx7140\tx10180\tx10680\fi-4540\li7140\fc0 :
  315. \
  316.     
  317. \f5 - 
  318. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  319. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Boolean
  320. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 From
  321. \pard\tx7140\tx10180\tx10680\fi-4540\li7140\fc0 :
  322. \
  323.     
  324. \f5 - 
  325. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  326. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Integer\
  327.     
  328. \f5 - 
  329. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  330. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 PositiveInteger\
  331.  
  332. \f5     - 
  333. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  334. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Character\
  335.     
  336. \f5 - 
  337. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  338. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Cstring\
  339.     
  340. \f5 - 
  341. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  342. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Object\
  343.  
  344. \f5     - 
  345. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  346. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Pointer\
  347.     
  348. \f5 - 
  349. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\f4\fc0 Get
  350. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 Boolean\
  351.     
  352. \f5 - 
  353. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\f4\fc0 GetDataWithType:From:\
  354.  
  355. \pard\tx7140\tx10180\tx10680\fi-4540\li7140 \
  356.  
  357. \pard\tx7140\fs16\li2100 \
  358. \
  359. \
  360.  
  361. \fs28 CLASS METHODS\
  362.  
  363. \fs16 \
  364.  
  365. \b \
  366.  
  367. \b0\fs28 none\
  368.  
  369. \pard\tx3120\tx3620\tx4120\fs16\li2620 \
  370.  
  371. \pard\tx7140\li2100 \
  372. \
  373.  
  374. \fs28 INSTANCE METHODS\
  375.  
  376. \fs16 \
  377.  
  378. \b \
  379.  
  380. \fs28 CopyCString:\
  381.  
  382. \pard\f5\b0\fi-1020\li3620 - 
  383. \f4 (
  384. \fc0 Object
  385. \b CopyCString:
  386. \b0  (
  387. CString
  388. \i data
  389. \b\i0 \
  390.  
  391. \fs16 \
  392.  
  393. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Makes a copy of the specified CString.  This is in constrast to Store
  394. \b CString:
  395. \b0  which only stores a reference to its CString.  Returns self.\
  396.  
  397. \pard\tx7140\fs16\li2100 \
  398.  
  399. \b \
  400.  
  401. \fs28 CopyCString:Into:\
  402.  
  403. \pard\f5\b0\fi-1020\li3620 - 
  404. \f4 (
  405. \fc0 Object) 
  406. \b CopyCString:
  407. \b0  (CString) 
  408. \i data 
  409. \b\i0 Into
  410. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620\fc0 :
  411. \b0  (
  412. \pard\fi-1020\li3620\fc0 Integer
  413. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620\fc0 ) 
  414. \pard\i\fi-1020\li3620\fc0 reference
  415. \b\i0 \
  416.  
  417. \fs16 \
  418.  
  419. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Makes a copy of the specified CString, and stores it in the specified storage area.  This is in constrast to 
  420. \b StoreCString:
  421. \b0  which only stores a reference to its CString.  Returns self.\
  422.  
  423. \pard\tx7140\fs16\li2100 \
  424.  
  425. \b \
  426.  
  427. \fs28 CopyPointer:\
  428.  
  429. \pard\f5\b0\fi-1020\li3620 - 
  430. \f4 (
  431. \fc0 Object) 
  432. \b CopyPointer
  433. :
  434. \b0  (Pointer) 
  435. \i data 
  436. \b\i0 WithLength:
  437. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b0\fi-1020\li3620\fc0  (
  438. \pard\fi-1020\li3620\fc0 PositiveInteger
  439. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620\fc0 ) 
  440. \pard\i\fi-1020\li3620\fc0 length
  441. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620\fc0  
  442. \pard\b\i0\fi-1020\li3620\fc0 \
  443.  
  444. \fs16 \
  445.  
  446. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 This makes a copy of the specified pointer's data, and stores that. This is in contrast to 
  447. \b StorePointer:
  448. \b0  which only stores a reference to the data.  Returns self.\
  449.  
  450. \pard\tx7140\fs16\li2100 \
  451.  
  452. \b \
  453.  
  454. \fs28 CopyPointer:WithLength:Into:\
  455.  
  456. \pard\f5\b0\fi-1020\li3620 - 
  457. \f4 (
  458. \fc0 Object) 
  459. \b CopyPointer:
  460. \b0  (Pointer) 
  461. \i data 
  462. \b\i0 WithLength:
  463. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b0\fi-1020\li3620\fc0  (
  464. \pard\fi-1020\li3620\fc0 PositiveInteger
  465. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620\fc0 ) 
  466. \pard\i\fi-1020\li3620\fc0 length 
  467. \b\i0 Into
  468. :
  469. \b0  (
  470. Integer
  471. \i reference
  472. \b\i0 \
  473.  
  474. \fs16 \
  475.  
  476. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 This makes a copy of the specified pointer's data, and stores a reference to the copy in the storage area referenced by 
  477. \i reference
  478. \i0 . This is in contrast to 
  479. \b StorePointer:
  480. \b0  which only stores a reference to the data.  Returns self.\
  481.  
  482. \pard\tx7140\fs16\li2100 \
  483.  
  484. \b \
  485.  
  486. \fs28 init\
  487.  
  488. \pard\b0\fi-1020\li3620 - (Object) 
  489. \b init\
  490.  
  491. \fs16 \
  492.  
  493. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Unsurprisingly, this initalizes a ResultObject object.  It clears the internal variables to default values, and returns self (all this after having initalized its parent, of course). \
  494.  
  495. \pard\tx7140\fs16\li2100 \
  496.  
  497. \b \
  498.  
  499. \fs28 free\
  500.  
  501. \pard\b0\fi-1020\li3620 - 
  502. \b free\
  503.  
  504. \fs16 \
  505.  
  506. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Disposes of the instance values, freeing those it owns, and then frees the object.\
  507.  
  508. \fs16 \
  509.  
  510. \pard\tx7140\b\li2100 \
  511.  
  512. \fs28 GetBoolean\
  513.  
  514. \pard\f5\b0\fi-1020\li3620 - 
  515. \f4 (Boolean) 
  516. \b GetBoolean\
  517.  
  518. \fs16 \
  519.  
  520. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the Boolean in the first storage area.\
  521.  
  522. \fs16 \
  523.  
  524. \pard\tx7140\b\li2100 \
  525.  
  526. \fs28 GetBooleanFrom:\
  527.  
  528. \pard\f5\b0\fi-1020\li3620 - 
  529. \f4 (Boolean) 
  530. \b GetBooleanFrom:
  531. \b0  (Integer) 
  532. \i reference
  533. \b\i0 \
  534.  
  535. \fs16 \
  536.  
  537. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the Boolean in the storage area specified by reference (use the defined constants from below).\
  538.  
  539. \fs16 \
  540.  
  541. \pard\tx7140\b\li2100 \
  542.  
  543. \fs28 GetCharacter\
  544.  
  545. \pard\f5\b0\fi-1020\li3620 - 
  546. \f4 (Character) 
  547. \b GetCharacter\
  548.  
  549. \fs16 \
  550.  
  551. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the character in the first storage area.\
  552.  
  553. \fs16 \
  554.  
  555. \pard\tx7140\b\li2100 \
  556.  
  557. \fs28 GetCharacterFrom:\
  558.  
  559. \pard\f5\b0\fi-1020\li3620 - 
  560. \f4 (Character) 
  561. \b GetCharacterFrom:
  562. \b0  (Integer) 
  563. \i reference
  564. \b\i0 \
  565.  
  566. \fs16 \
  567.  
  568. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the character in the storage area specified by reference (use the defined constants from below).\
  569.  
  570. \fs16 \
  571.  
  572. \pard\tx7140\b\li2100 \
  573.  
  574. \fs28 GetCString\
  575.  
  576. \pard\f5\b0\fi-1020\li3620 - 
  577. \f4 (CString) 
  578. \b GetCString\
  579.  
  580. \fs16 \
  581.  
  582. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the character in the first storage area.\
  583.  
  584. \fs16 \
  585.  
  586. \pard\tx7140\b\li2100 \
  587.  
  588. \fs28 GetCStringFrom:\
  589.  
  590. \pard\f5\b0\fi-1020\li3620 - 
  591. \f4 (GetCString) 
  592. \b GetCStringFrom:
  593. \b0  (Integer) 
  594. \i reference
  595. \b\i0 \
  596.  
  597. \fs16 \
  598.  
  599. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the Cstring in the storage area specified by reference (use the defined constants from below).\
  600.  
  601. \fs16 \
  602.  
  603. \pard\tx7140\b\li2100 \
  604.  
  605. \fs28\fc0 GetDataWithType
  606. :
  607. From:
  608. \
  609.  
  610. \pard\f5\b0\fi-1020\li3620 - 
  611. \f4 (Generictype) 
  612. \b\fc0 GetDataWithType
  613. :
  614. \b0  (Integer) 
  615. \i thetype 
  616. \b\i0 From: 
  617. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b0\fi-1020\li3620 (Integer) 
  618. \pard\i\fi-1020\li3620 reference
  619. \b\i0 \
  620.  
  621. \fs16 \
  622.  
  623. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Retrieves a data item of type theType from the storage pointed to by reference.  Return the type as a generic type.  If there is an error, store an error code via 
  624. \b StoreMyError:.
  625. \b0 \
  626.  
  627. \fs16 \
  628.  
  629. \pard\tx7140\b\li2100 \
  630.  
  631. \fs28 GetErrorCode\
  632.  
  633. \pard\f5\b0\fi-1020\li3620 - 
  634. \f4 (Integer) 
  635. \b GetErrorCode\
  636.  
  637. \fs16 \
  638.  
  639. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the error code that the object is currently storing\
  640.  
  641. \fs16 \
  642.  
  643. \pard\tx7140\b\li2100 \
  644.  
  645. \fs28 GetErrorText\
  646.  
  647. \pard\f5\b0\fi-1020\li3620 - 
  648. \f4 (CString) 
  649. \b GetErrorText\
  650.  
  651. \fs16 \
  652.  
  653. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the Cstring in the error text storage area.  Note that this is a full 
  654. \i copy
  655. \i0  of the string.  One can not obtain a mere reference to it.  One is responsibe for freeing the text using the usual 
  656. \b free
  657. \b0 () call.\
  658.  
  659. \fs16 \
  660.  
  661. \pard\tx7140\b\li2100 \
  662.  
  663. \fs28 GetInteger\
  664.  
  665. \pard\f5\b0\fi-1020\li3620 - 
  666. \f4 (Integer) 
  667. \b GetInteger\
  668.  
  669. \fs16 \
  670.  
  671. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the Integer in the first storage area.\
  672.  
  673. \fs16 \
  674.  
  675. \pard\tx7140\b\li2100 \
  676.  
  677. \fs28 GetIntegerFrom:\
  678.  
  679. \pard\f5\b0\fi-1020\li3620 - 
  680. \f4 (Integer) 
  681. \b GetIntegerFrom:
  682. \b0  (Integer) 
  683. \i reference
  684. \b\i0 \
  685.  
  686. \fs16 \
  687.  
  688. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the Integer in the storage area specified by reference (use the defined constants from below).\
  689.  
  690. \fs16 \
  691.  
  692. \pard\tx7140\b\li2100 \
  693.  
  694. \fs28 GetMyError\
  695.  
  696. \pard\f5\b0\fi-1020\li3620 - 
  697. \f4 (Integer) 
  698. \b GetMyError\
  699.  
  700. \fs16 \
  701.  
  702. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the error code that was stored while last setting or getting a result.
  703. \fs16 \
  704. \
  705.  
  706. \pard\tx7140\b\li2100 \
  707.  
  708. \fs28 GetObject\
  709.  
  710. \pard\f5\b0\fi-1020\li3620 - 
  711. \f4 (
  712. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  713. \pard\fi-1020\li3620 ) 
  714. \b Get
  715. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  716. \pard\fi-1020\li3620 \
  717.  
  718. \fs16 \
  719.  
  720. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the 
  721. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  722. \pard\tx3120\tx3620\tx4120\li2620  in the first storage area.\
  723.  
  724. \fs16 \
  725.  
  726. \pard\tx7140\b\li2100 \
  727.  
  728. \fs28 Get
  729. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  730. \pard\tx7140\li2100 From:\
  731.  
  732. \pard\f5\b0\fi-1020\li3620 - 
  733. \f4 (
  734. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  735. \pard\fi-1020\li3620 ) 
  736. \b Get
  737. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  738. \pard\fi-1020\li3620 From:
  739. \b0  (
  740. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  741. \pard\fi-1020\li3620 ) 
  742. \i reference
  743. \b\i0 \
  744.  
  745. \fs16 \
  746.  
  747. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the 
  748. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  749. \pard\tx3120\tx3620\tx4120\li2620  in the storage area specified by reference (use the defined constants from below).\
  750.  
  751. \fs16 \
  752.  
  753. \pard\tx7140\b\li2100 \
  754.  
  755. \fs28 Get
  756. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  757. \pard\tx7140\li2100 \
  758.  
  759. \pard\f5\b0\fi-1020\li3620 - 
  760. \f4 (
  761. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  762. \pard\fi-1020\li3620 ) 
  763. \b Get
  764. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  765. \pard\fi-1020\li3620 \
  766.  
  767. \fs16 \
  768.  
  769. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the 
  770. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  771. \pard\tx3120\tx3620\tx4120\li2620  in the first storage area.\
  772.  
  773. \fs16 \
  774.  
  775. \pard\tx7140\b\li2100 \
  776.  
  777. \fs28 Get
  778. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  779. \pard\tx7140\li2100 From:\
  780.  
  781. \pard\f5\b0\fi-1020\li3620 - 
  782. \f4 (
  783. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  784. \pard\fi-1020\li3620 ) 
  785. \b Get
  786. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  787. \pard\fi-1020\li3620 From:
  788. \b0  (
  789. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  790. \pard\fi-1020\li3620 ) 
  791. \i reference
  792. \b\i0 \
  793.  
  794. \fs16 \
  795.  
  796. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the 
  797. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  798. \pard\tx3120\tx3620\tx4120\li2620  in the storage area specified by reference (use the defined constants from below).\
  799.  
  800. \fs16 \
  801.  
  802. \pard\tx7140\b\li2100 \
  803.  
  804. \fs28 Get
  805. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  806. \pard\tx7140\li2100 \
  807.  
  808. \pard\f5\b0\fi-1020\li3620 - 
  809. \f4 (
  810. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  811. \pard\fi-1020\li3620 ) 
  812. \b Get
  813. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  814. \pard\fi-1020\li3620 \
  815.  
  816. \fs16 \
  817.  
  818. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the 
  819. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  820. \pard\tx3120\tx3620\tx4120\li2620  in the first storage area.\
  821.  
  822. \fs16 \
  823.  
  824. \pard\tx7140\b\li2100 \
  825.  
  826. \fs28 Get
  827. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  828. \pard\tx7140\li2100 From:\
  829.  
  830. \pard\f5\b0\fi-1020\li3620 - 
  831. \f4 (
  832. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  833. \pard\fi-1020\li3620 ) 
  834. \b Get
  835. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  836. \pard\fi-1020\li3620 From:
  837. \b0  (
  838. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  839. \pard\fi-1020\li3620 ) 
  840. \i reference
  841. \b\i0 \
  842.  
  843. \fs16 \
  844.  
  845. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Returns a copy of the 
  846. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  847. \pard\tx3120\tx3620\tx4120\li2620  in the storage area specified by reference (use the defined constants from below).\
  848.  
  849. \fs16 \
  850.  
  851. \pard\tx7140\b\li2100 \
  852.  
  853. \fs28\fc0 Put
  854. Boolean
  855. :Into:
  856. \
  857.  
  858. \pard\f5\b0\fi-1020\li3620 - 
  859. \f4 (Object) 
  860. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Put
  861. \pard\fi-1020\li3620 Boolean
  862. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 : 
  863. \pard\b0\fi-1020\li3620\fc0 (Boolean)
  864. \b  
  865. \b0\i data
  866. \b\i0  Into
  867. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 :
  868. \pard\b0\fi-1020\li3620  (Integer) 
  869. \i reference
  870. \b\i0 \
  871.  
  872. \fs16 \
  873.  
  874. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Stores a copy of the Boolean in the storage area specified by reference (use the defined constants from below).  Returns self.\
  875.  
  876. \fs16 \
  877.  
  878. \pard\tx7140\b\li2100 \
  879.  
  880. \fs28\fc0 Put
  881. Character
  882. :Into:
  883. \
  884.  
  885. \pard\f5\b0\fi-1020\li3620 - 
  886. \f4 (
  887. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 Object
  888. \pard\fi-1020\li3620 ) 
  889. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Put
  890. \pard\fi-1020\li3620 Character
  891. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 : 
  892. \pard\b0\fi-1020\li3620\fc0 (Character)
  893. \b  
  894. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b0\i\fc0 data
  895. \pard\b\i0\fi-1020\li3620\fc0  Into
  896. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 :
  897. \pard\b0\fi-1020\li3620  (Integer) 
  898. \i reference
  899. \b\i0 \
  900.  
  901. \fs16 \
  902.  
  903. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Store a copy of the character in the storage area specified by reference (use the defined constants from below). Returns self.\
  904.  
  905. \fs16 \
  906.  
  907. \pard\tx7140\b\li2100 \
  908.  
  909. \fs28\fc0 Put
  910. CString
  911. :Into:
  912. \
  913.  
  914. \pard\f5\b0\fi-1020\li3620 - 
  915. \f4 (
  916. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 Object
  917. \pard\fi-1020\li3620 ) 
  918. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Put
  919. \pard\fi-1020\li3620 CString
  920. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 : 
  921. \pard\b0\fi-1020\li3620\fc0 (Cstring)
  922. \b  
  923. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b0\i\fc0 data
  924. \pard\b\i0\fi-1020\li3620\fc0  Into
  925. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 :
  926. \pard\b0\fi-1020\li3620  (Integer) 
  927. \i reference
  928. \b\i0 \
  929.  
  930. \fs16 \
  931.  
  932. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Stores a 
  933. \b reference
  934. \b0  (pointer) to  the CString in the storage area specified by reference (use the defined constants from below). Returns self.\
  935.  
  936. \fs16 \
  937.  
  938. \pard\tx7140\b\li2100 \
  939.  
  940. \fs28\fc0 PutData:WithType:Into:DoIOwn:\
  941.  
  942. \pard\f5\b0\fi-1020\li3620 - 
  943. \f4 (
  944. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 Object
  945. \pard\fi-1020\li3620 ) 
  946. \b\fc0 PutData
  947. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 : 
  948. \pard\b0\fi-1020\li3620\fc0 (
  949. GenericType)
  950. \b  
  951. \b0\i theData
  952. \b\i0  WithType:
  953. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b0\fi-1020\li3620  (Integer) 
  954. \pard\i\fi-1020\li3620 theType
  955. \b\i0\fc0  Into
  956. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 :
  957. \pard\b0\fi-1020\li3620  (Integer) 
  958. \i reference 
  959. \b\i0\fc0 DoIO
  960. wn
  961. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\b0\fi-1020\li3620\fc0 (
  962. \pard\fi-1020\li3620\fc0 Boolean
  963. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620\fc0 )
  964. \b  
  965. \pard\b0\i\fi-1020\li3620\fc0 ownit
  966. \b\i0 \
  967.  
  968. \fs16 \
  969.  
  970. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Stores the specified data with the specified type into the specified storage area (and indicate whether we are just pointing tothe data, or if we have our own copy), if possible.  If it has trouble, an error is stored via StoreMyError:.  Returns self.
  971. \pard\tx7140\b\li2100\fc0 \
  972.  
  973. \pard\tx3120\tx3620\tx4120\b0\fs16\li2620 \
  974.  
  975. \pard\tx7140\b\li2100 \
  976.  
  977. \fs28\fc0 Put
  978. Integer
  979. :Into:
  980. \
  981.  
  982. \pard\f5\b0\fi-1020\li3620 - 
  983. \f4 (Object) 
  984. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Put
  985. \pard\fi-1020\li3620 Integer
  986. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 : 
  987. \pard\b0\fi-1020\li3620\fc0 (Integer)
  988. \b  
  989. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b0\i\fc0 data
  990. \pard\b\i0\fi-1020\li3620\fc0  Into
  991. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 :
  992. \pard\b0\fi-1020\li3620  (Integer) 
  993. \i reference
  994. \b\i0 \
  995.  
  996. \fs16 \
  997.  
  998. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Stores a copy of the Integer in the storage area specified by reference (use the defined constants from below). Returns self.\
  999.  
  1000. \fs16 \
  1001.  
  1002. \pard\tx7140\b\li2100 \
  1003.  
  1004. \fs28\fc0 PutObject:Into:
  1005. \
  1006.  
  1007. \pard\f5\b0\fi-1020\li3620 - 
  1008. \f4 (
  1009. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  1010. \pard\fi-1020\li3620 ) 
  1011. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Put
  1012. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  1013. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 : 
  1014. \pard\b0\fi-1020\li3620\fc0 (
  1015. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620\fc0 Object
  1016. \pard\fi-1020\li3620\fc0 )
  1017. \b  
  1018. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b0\i\fc0 data
  1019. \pard\b\i0\fi-1020\li3620\fc0  Into
  1020. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 :
  1021. \pard\b0\fi-1020\li3620  (
  1022. \fc0 Integer
  1023. \i reference
  1024. \b\i0 \
  1025.  
  1026. \fs16 \
  1027.  
  1028. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Stores a 
  1029. \b reference
  1030. \b0  (pointer) to  the 
  1031. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  1032. \pard\tx3120\tx3620\tx4120\li2620  in the storage area specified by reference (use the defined constants from below). Returns self.\
  1033.  
  1034. \fs16 \
  1035.  
  1036. \pard\tx7140\b\li2100 \
  1037.  
  1038. \fs28\fc0 PutPointer:Into:
  1039. \
  1040.  
  1041. \pard\f5\b0\fi-1020\li3620 - 
  1042. \f4 (
  1043. \fc0 Object
  1044. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Put
  1045. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  1046. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 : 
  1047. \pard\b0\fi-1020\li3620\fc0 (Pointer)
  1048. \b  
  1049. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b0\i\fc0 data
  1050. \pard\b\i0\fi-1020\li3620\fc0  Into
  1051. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 :
  1052. \pard\b0\fi-1020\li3620  (
  1053. \fc0 Integer
  1054. \i reference
  1055. \b\i0 \
  1056.  
  1057. \fs16 \
  1058.  
  1059. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Stores a 
  1060. \b reference
  1061. \b0  (pointer) to  the 
  1062. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  1063. \pard\tx3120\tx3620\tx4120\li2620  in the storage area specified by reference (use the defined constants from below). Returns self.\
  1064.  
  1065. \fs16 \
  1066.  
  1067. \pard\tx7140\b\li2100 \
  1068.  
  1069. \fs28\fc0 PutPositiveInteger:Into:
  1070. \
  1071.  
  1072. \pard\f5\b0\fi-1020\li3620 - 
  1073. \f4 (
  1074. \fc0 Object
  1075. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Put
  1076. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  1077. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 : 
  1078. \pard\b0\fi-1020\li3620\fc0 (PositiveInteger)
  1079. \b  
  1080. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b0\i\fc0 data
  1081. \pard\b\i0\fi-1020\li3620\fc0  Into
  1082. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 :
  1083. \pard\b0\fi-1020\li3620  (
  1084. \fc0 Integer
  1085. \i reference
  1086. \b\i0 \
  1087.  
  1088. \fs16 \
  1089.  
  1090. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Stores a copy of the 
  1091. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  1092. \pard\tx3120\tx3620\tx4120\li2620  in the storage area specified by reference (use the defined constants from below). Returns self.\
  1093.  
  1094. \fs16 \
  1095.  
  1096. \pard\tx7140\b\li2100 \
  1097.  
  1098. \fs28 ResetResults\
  1099.  
  1100. \pard\f5\b0\fi-1020\li3620 - 
  1101. \f4 (
  1102. \fc0 Object) 
  1103. \b ResetResults\
  1104.  
  1105. \fs16 \
  1106.  
  1107. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 This clears the error code, error text, and all data items in the storage area.  It returns self.\
  1108.  
  1109. \fs16 \
  1110.  
  1111. \pard\tx7140\b\li2100 \
  1112.  
  1113. \fs28 StoreErr
  1114. orCode:AndText: \
  1115.  
  1116. \pard\f5\b0\fi-1020\li3620 - 
  1117. \f4 (Object) 
  1118. \b StoreErrorCode: 
  1119. \b0 (Integer)
  1120. \b  
  1121. \b0\i code 
  1122. \b\i0 AndText:
  1123. \b0\i  
  1124. \i0\fc0 (CString
  1125. \i text
  1126. \b\i0 \
  1127.  
  1128. \fs16 \
  1129.  
  1130. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620 Stores a copy of the error code, a 
  1131. \b reference
  1132. \b0  to the error text, and returns self.\
  1133.  
  1134. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fs16\fc0 \
  1135. \
  1136.  
  1137. \pard\tx7140\b\fs28\li2100\fc0 StoreErrorText:AndCopyOfText:\
  1138.  
  1139. \pard\f5\b0\fi-1020\li3620\fc0 - (
  1140. \f4 Object
  1141. \f5 ) 
  1142. \f4\b StoreErrorCode:
  1143. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620  
  1144. \b0 (Integer)
  1145. \b  
  1146. \b0\i code
  1147. \pard\b\i0\fi-1020\li3620\fc0  AndCopyOfText: 
  1148. \b0 (
  1149. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620\fc0 CString
  1150. \pard\fi-1020\li3620\fc0 ) 
  1151. \i text
  1152. \f5\i0 \
  1153.  
  1154. \f4\b\fs16 \
  1155.  
  1156. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620\fc0 Stores a copy of the error code, and a 
  1157. \b copy
  1158. \b0  of the error text, and returns self.\
  1159.  
  1160. \fs16 \
  1161.  
  1162. \pard\tx7140\b\li2100 \
  1163.  
  1164. \fs28\fc0 Store
  1165. Boolean:\
  1166.  
  1167. \pard\f5\b0\fi-1020\li3620 - 
  1168. \f4 (
  1169. \fc0 Object
  1170. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Store
  1171. \pard\fi-1020\li3620 Boolean: 
  1172. \b0 (Boolean)
  1173. \b  
  1174. \b0\i data
  1175. \b\i0 \
  1176.  
  1177. \fs16 \
  1178.  
  1179. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620\fc0 Stores
  1180.  a copy of the Boolean in the first storage area.\
  1181.  
  1182. \fs16 \
  1183.  
  1184. \pard\tx7140\b\li2100 \
  1185.  
  1186. \fs28\fc0 Store
  1187. Character:\
  1188.  
  1189. \pard\f5\b0\fi-1020\li3620 - 
  1190. \f4 (
  1191. \fc0 Object
  1192. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Store
  1193. \pard\fi-1020\li3620 Character: 
  1194. \b0 (
  1195. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 Character
  1196. \pard\fi-1020\li3620 )
  1197. \b  
  1198. \b0\i data
  1199. \b\i0 \
  1200.  
  1201. \fs16 \
  1202.  
  1203. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620\fc0 Stores
  1204.  a copy of the character in the first storage area.\
  1205.  
  1206. \fs16 \
  1207.  
  1208. \pard\tx7140\b\li2100 \
  1209.  
  1210. \fs28\fc0 Store
  1211. CString:\
  1212.  
  1213. \pard\f5\b0\fi-1020\li3620 - 
  1214. \f4 (
  1215. \fc0 Object
  1216. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Store
  1217. \pard\fi-1020\li3620 CString: 
  1218. \b0 (
  1219. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\fi-1020\li3620 CString
  1220. \pard\fi-1020\li3620 )
  1221. \b  
  1222. \b0\i data
  1223. \b\i0 \
  1224.  
  1225. \fs16 \
  1226.  
  1227. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620\fc0 Stores
  1228.  a 
  1229. \b reference
  1230. \b0  (pointer) to the character in the first storage area.\
  1231.  
  1232. \fs16 \
  1233.  
  1234. \pard\tx7140\b\li2100 \
  1235.  
  1236. \fs28\fc0 Store
  1237. Integer:\
  1238.  
  1239. \pard\f5\b0\fi-1020\li3620 - 
  1240. \f4 (
  1241. \fc0 Object
  1242. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Store
  1243. \pard\fi-1020\li3620 Integer: 
  1244. \b0 (
  1245. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\fc0 Integer
  1246. \pard\fi-1020\li3620 )
  1247. \b  
  1248. \b0\i data
  1249. \b\i0 \
  1250.  
  1251. \fs16 \
  1252.  
  1253. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620\fc0 Stores
  1254.  a copy of the Integer in the first storage area.\
  1255.  
  1256. \fs16 \
  1257.  
  1258. \pard\tx7140\b\li2100 \
  1259.  
  1260. \fs28\fc0 StoreMyError:\
  1261.  
  1262. \pard\f5\b0\fi-1020\li3620 - 
  1263. \f4 (
  1264. \fc0 Object) 
  1265. \b StoreMyError
  1266. \b0 (
  1267. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Integer
  1268. \pard\fi-1020\li3620 )
  1269. \b  
  1270. \b0\i errorcode
  1271. \b\i0 \
  1272.  
  1273. \fs16 \
  1274.  
  1275. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620\fc0 Stores a copy of the specified error in thestorage area for the internal error.\
  1276.  
  1277. \fs16 \
  1278.  
  1279. \pard\tx7140\b\li2100 \
  1280.  
  1281. \fs28\fc0 Store
  1282. Object:\
  1283.  
  1284. \pard\f5\b0\fi-1020\li3620 - 
  1285. \f4 (
  1286. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  1287. \pard\fi-1020\li3620 ) 
  1288. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Store
  1289. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Object
  1290. \pard\fi-1020\li3620 : 
  1291. \b0 (
  1292. \fc0 Object
  1293. )
  1294. \b  
  1295. \b0\i data
  1296. \b\i0 \
  1297.  
  1298. \fs16 \
  1299.  
  1300. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620\fc0 Stores
  1301.  a 
  1302. \b reference
  1303. \b0  (pointer) to the 
  1304. Object
  1305.  in the first storage area.\
  1306.  
  1307. \fs16 \
  1308.  
  1309. \pard\tx7140\b\li2100 \
  1310.  
  1311. \fs28\fc0 StorePointer:
  1312. \
  1313.  
  1314. \pard\f5\b0\fi-1020\li3620 - 
  1315. \f4 (
  1316. \fc0 Object
  1317. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Store
  1318. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 Pointer
  1319. \pard\fi-1020\li3620 : 
  1320. \b0 (
  1321. \fc0 Pointer
  1322. )
  1323. \b  
  1324. \b0\i data
  1325. \b\i0 \
  1326.  
  1327. \fs16 \
  1328.  
  1329. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620\fc0 Stores
  1330.  a 
  1331. \b reference
  1332. \b0  (pointer) to the 
  1333. Pointer
  1334.  in the first storage area.\
  1335.  
  1336. \fs16 \
  1337.  
  1338. \pard\tx7140\b\li2100 \
  1339.  
  1340. \fs28\fc0 StorePositiveInteger:
  1341. \
  1342.  
  1343. \pard\f5\b0\fi-1020\li3620 - 
  1344. \f4 (
  1345. \fc0 Object
  1346. \pard\tx533\tx1067\tx1601\tx2135\tx2668\tx3202\tx3736\tx4270\tx4803\tx5337\b\fc0 Store
  1347. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc0 PositiveInteger
  1348. \pard\fi-1020\li3620 : 
  1349. \b0 (
  1350. \fc0 PositiveInteger
  1351. )
  1352. \b  
  1353. \b0\i data
  1354. \b\i0 \
  1355.  
  1356. \fs16 \
  1357.  
  1358. \pard\tx3120\tx3620\tx4120\b0\fs28\li2620\fc0 Stores
  1359.  a copy of the 
  1360. PositiveInteger
  1361.  in the first storage area.\
  1362.  
  1363. \fs16 \
  1364.  
  1365. \pard\tx7140\li2100 \
  1366. \
  1367.  
  1368. \fs28 BUGS\
  1369.  
  1370. \fs16 \
  1371.  
  1372. \pard\tx3120\tx3620\tx4120\fs28\li2620 There is no way provided to make an actual copy of an object, rather than just copy a reference.\
  1373. Dealing with its own errors has not been examined closely, and they may be incomplete.\
  1374. We are also happy and content to just overwrite any data items already there. (this may be a feature)
  1375. \pard\tx7140\fs16\li2100 \
  1376. \
  1377.  
  1378. \fs28 ENHANCEMENT IDEAS\
  1379.  
  1380. \fs16 \
  1381.  
  1382. \pard\tx3120\tx3620\tx4120\fs28\li2620 Everything should be collapsed into object types!\
  1383. The distinction between copying the actual data, and only copying a reference seems a bit cumbersome, and some way to flatten this should be provided eventually.\
  1384. Perhaps add a set of 
  1385. \b Store…
  1386. \b0  methods that would automatically store in the next available storage area?\
  1387. Make the storage area set a dynamically sized linked list, so that one needn't worry about running out of storage areas\
  1388.  
  1389. \fs16 \
  1390.  
  1391. \pard\tx7140\li2100 \
  1392.  
  1393. \fs28 CONSTANTS AND DEFINED TYPES\
  1394.  
  1395. \fs16 \
  1396.  
  1397. \pard\tx6480\tx7180\fs24\li2620 /* Types used by ResultObjects */\
  1398.  
  1399. \fc0 #define ERR_OK    0\
  1400. #define ERR_PEACHY    0\
  1401. #define ERR_ALLISWELL    0\
  1402. #define ERR_GROOVY    0\
  1403. \
  1404. #define ERR_NOSUCHAREA     -1234\
  1405. #define ERR_NOSUCHTYPE     -1235\
  1406. #define ERR_CANTSTORE    -1236\
  1407. \
  1408. #define FIRST_RESULT    3\
  1409. #define SECOND_RESULT    4\
  1410. #define THIRD_RESULT    5\
  1411. #define FOURTH_RESULT    6\
  1412. #define FIFTH_RESULT    7\
  1413. \
  1414. #define MYERROR_RESULT    0\
  1415. #define ERRORCODE_RESULT    1\
  1416. #define ERRORTEXT_RESULT    2\
  1417.  
  1418. \pard\tx7140\fs16\li2100 \
  1419. \
  1420.  
  1421. \fs28 MODIFICATION HISTORY\
  1422.  
  1423. \fs16 \
  1424.  
  1425. \pard\tx3120\tx3620\tx4120\fs28\li2620 $Log:    ResultObject.rtf,v $
  1426. Revision 1.3  93/01/10  15:08:46  death
  1427. Sun Jan 10 15:08:46 PST 1993
  1428.  
  1429. Revision 1.2  92/07/26  13:59:21  death
  1430. Update of the result object... (prob no changes here)
  1431.  
  1432.  
  1433. Revision 1.1  92/04/27  20:51:47  death
  1434. Initial revision
  1435. \
  1436.  
  1437. \b Revision 0.0 
  1438. \b0  92/02/09  14:01:00  death\
  1439.  
  1440. \fi-20\li3120 Use this sample format as you check out future revisons...\
  1441.  
  1442. }
  1443. @
  1444.  
  1445.  
  1446. 1.3
  1447. log
  1448. @Sun Jan 10 15:08:46 PST 1993
  1449. @
  1450. text
  1451. @d7 1
  1452. a7 1
  1453. \pard\tx5700\tx11360\f4\b0\i0\ul0\fs24 $Revision: 1.2 $    $Author: death $    $Date: 92/07/26 13:59:21 $\
  1454. d1403 3
  1455. @
  1456.  
  1457.  
  1458. 1.2
  1459. log
  1460. @Update of the result object... (prob no changes here)
  1461.  
  1462. @
  1463. text
  1464. @d7 1
  1465. a7 1
  1466. \pard\tx5700\tx11360\f4\b0\i0\ul0\fs24 $Revision: 1.1 $    $Author: death $    $Date: 92/04/27 20:51:47 $\
  1467. d1403 4
  1468. @
  1469.  
  1470.  
  1471. 1.1
  1472. log
  1473. @Initial revision
  1474. @
  1475. text
  1476. @d7 1
  1477. a7 1
  1478. \pard\tx5700\tx11360\f4\b0\i0\ul0\fs24 $Revision: 1.3 $    $Author: death $    $Date: 92/03/29 12:11:08 $\
  1479. d1402 4
  1480. a1405 1
  1481. \pard\tx3120\tx3620\tx4120\fs28\li2620 $Log: $\
  1482. @
  1483.